#include <iostream>
using namespace std;

class a
{
public:
    a()
    {
        cout << "a的构造函数1" << endl;
    }
    a(int q)
    {
        x = q;
        cout << "a的构造函数2 =" << q << endl;
    }
    a(float f)
    {
        cout << "a的构造函数3 =" << f << endl;
    }
    a(int q, float f)
    {
        x = q;
        y = f;
        cout << "a的构造函数4 =" << q << " " << f << endl;
    }

protected:
    int x;
    float y;
};

class b : virtual public a
{
public:
    b(int q) : a(q)
    {

        cout << "b的构造函数1 = " << q << endl;
    }
    b(float f) : a(f)
    {
        cout << "b的构造函数2 = " << f << endl;
    }
    // b(int q, float f) : a(q, f)
    // {
    //     cout << "b的构造函数3 = " << q << " " << f << endl;
    // }
};

class c :  public b   //, public a
{
public:
    c(int q) : b(q)
    {
        cout << "c的构造函数1 = " << q << endl;
    }
    c(float f) : b(f)
    {
        cout << "c的构造函数2 = " << f << endl;
    }
    // c(int q, float f) : b(q, f)
    // {
    //     cout << "c的构造函数3 = " << q << " " << f << endl;
    // }
    // c(int q, float f, int x) : a(q, f), b(q, f)
    // {
    //     cout << "c的构造函数4 = " << q << " " << f << " " << x << endl;
    // }
};


int main(int argc, char const *argv[])
{
    c c1(10.1f);
    // c c1(10, 10.5f);
    // b b1(10 , 10.5f);
    // c c2(10.5f);
    // c c3(10);
    //  c c4(10, 10.5f, 100);
    return 0;
}
